package com.example.jwt.demo.service.impl;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.example.jwt.demo.entity.User;
import com.example.jwt.demo.service.TokenService;
import org.springframework.stereotype.Service;

import java.util.Date;

@Service
public class TokenServiceImpl implements TokenService {
    @Override
    public String getToken(User users) {
        Date start=new Date();
        long currentTime=System.currentTimeMillis()+60*60*1000;//一小时有效时间
        Date end=new Date(currentTime);
        String token="";
        token= JWT.create()
                //签发对象
                .withAudience(users.getId()+"")
                // 发行时间
                .withIssuedAt(start)
                // 过期时间
                .withExpiresAt(end)
                // 签名
                .sign(
                    // 使用HMAC SHA256签名算法
                    Algorithm.HMAC256
                                // 密钥
                             (String.valueOf(users.getPassword()))
                );
        return token;
    }
}
